package com.cloudbroker.bcs.platform.ltb.bizapi.service.viewpoint;

import com.cloudbroker.bcs.common.annotation.RequiredPermissions;
import com.cloudbroker.bcs.common.entity.HSBCPSBackVO;
import com.cloudbroker.bcs.platform.ltb.bizapi.constants.PermissionsValue;
import com.cloudbroker.bcs.platform.ltb.bizapi.service.base.vo.HSBCPSVO;
import com.cloudbroker.bcs.platform.ltb.bizapi.service.viewpoint.result.CommentSaveResult;
import com.cloudbroker.bcs.platform.ltb.bizapi.service.viewpoint.result.ViewpointCommentDavResult;
import com.cloudbroker.bcs.platform.ltb.bizapi.service.viewpoint.result.ViewpointDavList;
import com.cloudbroker.bcs.platform.ltb.bizapi.service.viewpoint.result.ViewpointTagListResult;
import com.cloudbroker.bcs.platform.ltb.bizapi.service.viewpoint.vo.*;

public interface BrokerBizService {
    
    @RequiredPermissions(value = { PermissionsValue.VIEWPOINT })
    public ViewpointTagListResult funcBrokerTagList(HSBCPSVO param);
    
    @RequiredPermissions(value = { PermissionsValue.VIEWPOINT })
    public ViewpointDavList funcViewpointListByDav(ViewpointListForm param);
    
    @RequiredPermissions(value = { PermissionsValue.VIEWPOINT })
    public HSBCPSBackVO brokerViewpointSave(ViewpointSaveForm param);
    
    @RequiredPermissions(value = { PermissionsValue.VIEWPOINT })
    public HSBCPSBackVO brokerViewpointDel(ViewPointIdForm param);
    
    @RequiredPermissions(value = { PermissionsValue.VIEWPOINT })
    public ViewpointCommentDavResult viewpointCommentList(ViewpointCommentForm param);
    
    @RequiredPermissions(value = { PermissionsValue.VIEWPOINT })
    public CommentSaveResult commentReplaySave(CommentReplayForm param);
    
    @RequiredPermissions(value = { PermissionsValue.VIEWPOINT })
    public CommentSaveResult viewpointCommentDel(CommentReplayIdForm param);
    
    @RequiredPermissions(value = { PermissionsValue.VIEWPOINT })
    public HSBCPSBackVO updateNewTag(ViewpointTagUpdateForm param);
    
    @RequiredPermissions(value = { PermissionsValue.VIEWPOINT })
    public HSBCPSBackVO sortNewTag(ViewpointTagSortForm param);

    @RequiredPermissions(value = { PermissionsValue.VIEWPOINT })
    public HSBCPSBackVO funcViewpointTop(ViewPointTopForm param);
    
    @RequiredPermissions(value = { PermissionsValue.VIEWPOINT })
    public HSBCPSBackVO saveSystemTag(ViewpointTagForm param);
    
    @RequiredPermissions(value = { PermissionsValue.VIEWPOINT })
    public HSBCPSBackVO saveNewTag(ViewpointTagForm param);
    
    @RequiredPermissions(value = { PermissionsValue.VIEWPOINT })
    public HSBCPSBackVO brokerTagDel(ViewpointTagIdForm param);
    
    @RequiredPermissions(value = { PermissionsValue.VIEWPOINT })
    public HSBCPSBackVO brokerViewpointClear(ViewPointStatusForm param);
}
